#pragma once
#ifndef __EVENTTYPE_H__
#define __EVENTTYPE_H__

#include "IEvent.h"
#include <tuple>

using namespace NTrader;

class RegisterEvent:public IEvent
{
public:

	RegisterEvent() = default;

	virtual void Set(Actor_t x) override
	{
		_actor = x;
	};

	virtual Actor_t Get() override
	{
		return _actor;
	};

	virtual void Get(EventType& t ) override
	{
		t = this->_type;
	};

	virtual void Set(EventType& t) override
	{
		_type = t;
	};

private:
	EventType _type;
	Actor_t _actor;
};

class TimerEvent :public IEvent
{
public:

	TimerEvent()
	{
		SetEventType(EventType::EVENT_TIMER);
	};
};

class CloseEvent :public IEvent
{
public:

	CloseEvent()
	{
		SetEventType(EventType::EVENT_CLOSE);
	};
};

#endif